package jd;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;

public class Main2{
	
	private static boolean testfun(ArrayList<Integer> l1, ArrayList<Integer> l2,int[][] inputArr) {
		for(int i = 0;i<l1.size();i++){
			for(int j = 0;j<l2.size();j++){
				int x = l1.get(i);
				int y = l2.get(j);
				if (inputArr[x][y] == 0){
					return false;
				}
			}
		}
		return true;
	}

	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()){
			int t = sc.nextInt();
			for(int sign = 0;sign<t;sign++){
				int n = sc.nextInt();
				int m = sc.nextInt();
				int[][] inputArr = new int[n+1][n+1];
				for(int i = 0;i<m;i++){
					int x = sc.nextInt();
					int y = sc.nextInt();
					inputArr[x][y] = 1;
					inputArr[y][x] = 1;
				}
				HashMap<Integer,ArrayList<Integer>> map = new HashMap<Integer,ArrayList<Integer>>();
				boolean[] canVisible = new boolean[n+1];
				for(int i = 1;i<=n;i++){
					if (canVisible[i]){
						continue;
					}
					ArrayList<Integer> list = new ArrayList<Integer>();
					for(int j = i+1;j<=n;j++){
						if (inputArr[i][j] == 0){
							list.add(j);
							canVisible[j] = true;
						}
					}
					canVisible[i] = true;
					map.put(i, list);
				}
				
				
				ArrayList<Integer> lis = new ArrayList<Integer>();
				for(Integer k : map.keySet()){
					lis.add(k);
				}
				
				boolean flag = false;
				for(int i = 0;i<lis.size();i++){
					int x = lis.get(i);
					
					ArrayList<Integer> l1 = map.get(x);
					for(int j = i+1;j<lis.size();j++){
						int y = lis.get(j);
						ArrayList<Integer> l2 = map.get(y);
						if (testfun(l1,l2,inputArr) == false){
							System.out.println("No");
							flag = true;
							break;
						}
					}
					if (flag){
						break;
					}
				}
				if (flag == false){
					System.out.println("Yes");
				}
				
			}		
	        
		}
	}
}
